1. Technical Field
The present invention relates to the identification, prior to or during the transfer of data, of suitable communications channels for transferring data. Embodiments of the present invention may be applicable in situations where a user wishes to receive data such as video data by way of Video Streaming for example, or prior to or during the downloading of multimedia content over any of a variety of means such as xDSL, Wireless LAN, mobile etc.
2. Related Art
Of the many uses of networks such as the internet, one category of use that has been gaining significantly in popularity recently has been the use of networks for the exchange of data such as video or audio data or other media content. Increasingly, types of multimedia content (e.g. Video, Audio) are available in large quantities on the Internet. This Multimedia content can be streamed over a variety of IP Networks, either broadband or narrowband. More generally, data distribution may be achieved by way of data streaming or more general forms of downloading. Such distribution may be carried out in a peer-to-peer context, or from commercial multimedia-providing servers, and may be carried out using a variety of means such as xDSL, Wireless LAN, cable, mobile (GPRS or 3G) etc. It should be noted that xDSL covers many different variations of DSL (“Digital Subscriber Line”), such as ADSL (“Asymmetric”), HDSL (“High bit-rate”), and RADSL (“Rate-Adaptive”). Digital Subscriber Line technology is a well-known technology for bringing high-bandwidth information to homes and small businesses over ordinary telephone lines.
Unfortunately, receiving data from the Internet can sometimes be problematic, due to factors such as Packet Loss, Packet Delay, Jitter, a Server being down, and other factors, which severely affect time-critical applications such as Video Streaming. Often, a user tries to connect to a Server and finds either that this Server is down or severely busy, thus refusing video content. If the user does manage to connect to a server and the video content is finally being streamed, the quality may be very bad due to factors such as packet delay, referred to above. All these factors severely affect an end-user's experience, particularly with regard to receiving streamed audio or video data over the Internet, and have thus delayed the take-up of these kinds of applications.
For an individual user who wishes to download large files or other items, or perhaps to receive streamed data relating to a particular file or files, there may be a large number of different data providers, such as commercial servers or peers, who may be able to provide the required data. On account of the variety of means by which the user may be connected to the network, the variety of types of data providers from which data may be sourced, and other factors, the individual user may encounter the problem of not knowing which data provider, from a “pool” of available data providers such as Video Servers, will be capable of serving video content or other such data over a reliable connection. Low reliability may be caused by packet loss, jitter, packet delay, and other factors, all of which lower the chances of achieving good quality downloading or data streaming.
In order to give an idea of how important it is to solve that problem, some “well-known” applications are mentioned below:                1) Peer-To-Peer applications like “Napster” (a music file-sharing web-site that has now been shut down) and “Kazaa” (www.kazaa.com).        2) Video Streaming Content providers, where a number of video servers are set-up somewhere on the network.        
With reference to video servers, to which the present invention is of particular applicability, the usual approach to this problem has been to pick a default video server without any prior knowledge of which Server will provide the most reliable connection, which is dependent on where the end-user is located on the network, however some techniques already exist for choosing a server which is likely to be faster or better in some way.
Summaries of some related papers are given below:    “Measurement study of peer-to-peer file sharing systems”: Authors: Saroiu S, Gummadi P K, Gribble S D (Dept. of Comput. Sci. & Eng., Washington Univ., Seattle, Wash., USA),    Multimedia Computing and Networking 2002, 23-24 Jan. 2002, SPIE-Int. Soc. Opt. Eng, Proceedings of the SPIE—The International Society for Optical Engineering, vol. 4673 pp 156-70Summary:
The popularity of peer-to-peer multimedia file sharing applications such as Gnutella and Napster has created a flurry of recent research activity into peer-to-peer architectures. This paper includes a detailed measurement study of the two popular peer-to-peer file sharing systems, namely Napster and Gnutella, and in particular seeks to characterise the population of end-user hosts that participate in these two systems. This characterisation includes the bottleneck bandwidths between these hosts and the Internet at large, IP-level latencies to send packets to these hosts, how often hosts connect and disconnect from the system, how many files hosts share and download, the degree of co-operation between the hosts, and several correlations between these characteristics.    “Handling multimedia objects in peer-to-peer networks”: Authors: Kalogeraki V (HP Labs., Palo Alto, Calif., USA), Delis A, Gunopulos D, Proceedings CCGRID 2002. 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid, 21-24 May 2002, IEEE Comput. Soc pp 438-9Summary:
This paper attempts to explain how the furnishing of video services on a peer-to-peer (P2P) network can not only offer viable alternatives to the mostly proprietary architectures used today for the delivery of video services, but it can also be done in a reliable and scalable manner. Building upon the approach of ad-hoc P2P networks of resources, a new architecture that can support the storage and retrieval of movies and/or video clips is proposed. The proposed configuration exploits the availability of high-performance links to networks, the usage of exclusive and partial indexing in peers, making nodes “aware” of the content in their own vicinity, replication of objects and caching of popular items, as well as full connectivity among servers whenever feasible. The architecture claims to use efficient indexing mechanisms for the retrieval of the multimedia objects, guarantees continuous operation in light of server failures and allows for the transparent population of new servers as well as the evolution of the furnished services and/or network resources with minimal disruption to the users. One key provision to realise such a P2P infrastructure is that the core peers (or servers) are expected to be linked via a low-latency and high-bandwidth network that is capable of effectively handling and delivering voluminous multimedia data. It is also anticipated that end-users should have sufficient connections to object servers.    “Peer-to-peer streaming media delivery”: Author: Stolarz D, Proceedings First International Conference on Peer-to-Peer Computing, 27-29 Aug. 2001, IEEE Comput. Soc pp 48-52Summary:
Whatever definitions have been put upon it, peer-to-peer is said to be an effective rallying cry for a new way of doing things. Streaming media delivery is particularly susceptible to a peer-to-peer architectural approach. Peer-to-peer systems have been shown to reduce the bandwidth cost and increase the scalability of on-demand and streaming content on the Internet. Similar techniques can be used to create a “virtual multicast”, an application-layer implementation of the efficient sub-net broadcast features of network-layer multicasting.    “On peer-to-peer media streaming”: Authors: Dongyan Xu, Hefeeda M, Hambrusch S, Bhargava B (Dept. of Comput. Sci., Purdue Univ., West Lafayette, Ind., USA) Proceedings 22nd International Conference on Distributed Computing Systems, 2-5 Jul. 2002, IEEE Comput. Soc pp 363-71Summary:
In this paper, a peer-to-peer media streaming system is studied with the following characteristics: (1) its streaming capacity grows dynamically; (2) peers do not exhibit server-like behaviour; (3) peers are heterogeneous in their bandwidth contribution; and (4) each streaming session may involve multiple supplying peers. Based on these characteristics, two problems are investigated: (1) how to assign media data to multiple supplying peers in one streaming session and (2) how to quickly amplify the system's total streaming capacity. The solution proposed to the first problem is an optimal media data assignment algorithm OTSp2p, which results in minimum buffering delay in the consequent streaming session. The solution to the second problem is a distributed differentiated admission control protocol DACp2p. By differentiating between requesting peers with different outbound bandwidth, DACp2p is said to achieve fast system capacity amplification; benefits all requesting peers in admission rate, waiting time, and buffering delay; and creates an incentive for peers to offer their truly available out-bound bandwidth.
Referring now to background patent literature, a system for server-side optimisation of data delivery is disclosed in U.S. Pat. No. 6,112,239 (Kenner et al). Similar systems are disclosed in U.S. Pat. No. 6,502,125 and US 2003/0145007 (both also Kenner et al). In these systems, users are provided with software which must be executed from their own machines in order to perform the optimisation. Similarly, in U.S. Pat. No. 6,477,522 (Young), a system for optimising the downloading of files from the internet is disclosed in which an applet intercepts the request for the file and determines the best server to provide the file. Again, it is necessary for software to be installed in, and executed from, the user's machine.
With reference to the field of digital electronic game-playing between users connected via the internet, U.S. Pat. No. 6,304,902 (Black et al) discloses a method for ensuring that the quality of data communications links between several game-playing users and any necessary server or servers is adequate for such game-playing. Game-playing generally involves two-way exchange of information between multiple players and a common server, which may be selected from a plurality of possible servers. One server acts as a matchmaker, and selects a few servers from the plurality of possible servers, and from these selects one as the server for the requested game. It will be noted that on account of the nature of such game-playing systems, the aim is to allow several users to connect to the same server concurrently, so a server is chosen in such a way as to facilitate its use by several users who may attempt to connect to it concurrently or one shortly after another.